<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    月蝕傳說(shuō)

    浮躁讓人失去理智
    posts - 25, comments - 101, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) ::  :: 聯(lián)系 :: 聚合  :: 管理

    淺談SCA

    Posted on 2006-10-06 04:24 Dart 閱讀(3041) 評(píng)論(10)  編輯  收藏 所屬分類: SCA

    SCA 是由幾家國(guó)內(nèi)外知名企業(yè)聯(lián)合制定的,他們成立了一個(gè)名為OSOA的組織,SCA 標(biāo)準(zhǔn)目前還在完善階段,它于 2005 11 月發(fā)布了 0.9 版本,目前版本已經(jīng)到了 0.96 。在 0.9 版本中, SCA 標(biāo)準(zhǔn)就提出了 Java 實(shí)現(xiàn)以及 C++ 實(shí)現(xiàn)標(biāo)準(zhǔn),而且在以后的版本中,會(huì)陸續(xù)加入其他的實(shí)現(xiàn)標(biāo)準(zhǔn),也就是說(shuō) SCA 并不是只針對(duì)某一種語(yǔ)言的,不同語(yǔ)言或者環(huán)境之間通過(guò)開放的,標(biāo)準(zhǔn)的技術(shù)來(lái)實(shí)現(xiàn)互操作,比如我們常見(jiàn)的WebService等


    SCA
    提出的這套基于 SOA 去構(gòu)建企業(yè)應(yīng)用的編程模型,它的基礎(chǔ)思想就將業(yè)務(wù)功能構(gòu)造成一系列的服務(wù),并且能夠很好地將這些服務(wù)組合起來(lái),達(dá)到解決業(yè)務(wù)需求的目的。在構(gòu)建這些應(yīng)用時(shí)所用到的服務(wù),不僅包含新建服務(wù),而且可以包括已有的業(yè)務(wù)應(yīng)用中的業(yè)務(wù)功能,也就是說(shuō), SCA 提供了一套針對(duì)服務(wù)組合和服務(wù)創(chuàng)建的模型。

    目前來(lái)看,雖然有很多標(biāo)榜自己是基于 SOA 的產(chǎn)品或者框架,但是大部分還是各自為戰(zhàn),而 SCA 的出現(xiàn)有望統(tǒng)一基于 SOA 思想的框架。 Apache 已經(jīng)在最近完成了 SCA 標(biāo)準(zhǔn)的實(shí)現(xiàn),各位可以去 Apache 的網(wǎng)站看看。國(guó)內(nèi)的一家 Framework 廠商普元也加入到了 OSOA ,并且也宣布會(huì)在 2007 年發(fā)布一套 SCA 框架的 Framework

    ?

    SCA 具體的應(yīng)用目前還不太清楚,不過(guò) IBM 的新版本 Websphere 實(shí)現(xiàn)了 SCA 0.9 標(biāo)準(zhǔn),估計(jì)慢慢地會(huì)讓 SCA 得到更廣泛的應(yīng)用。在這片文章里我想簡(jiǎn)單談?wù)?/span> SCA 中的一些重要概念: Module,Component,ComponentType,Entry Point,External Service

    ?

    Module

    Module SCA 構(gòu)架中重要的組成單元,也是粒度較粗的一個(gè)單元。 Module SCA 0.9 以后版本改成了 Composite ,這可能是 OSOA 組織為了更加明確化其含義而進(jìn)行的一些命名更改。在 SCA 0.96 版本中, Module 具有了屬性,這是為了能夠更加方便地注入給 Component 屬性值而做的調(diào)整。總之在 SCA 0.9 以及后續(xù)版本中做了一些改進(jìn),但是大體的框架沒(méi)有發(fā)生變化,如圖所表示:


    module_over.JPG



    它包括了

    Component,Entry Point,External Service Wire 等元素,而這些元素互相之間有一定的關(guān)聯(lián),上圖中沒(méi)有畫出 Wire ,因?yàn)?/span> Wire 是專門針對(duì) Service Reference 連接 Component 以及 Entry Point 連接到 Component 的描述,在上圖中我已經(jīng)畫出了這幾種元素之間的關(guān)系和連接,所以也就沒(méi)有必要專門指出 Wire ,如果需要獲得更多詳細(xì)的信息,可以去 DW 或者 Dev2Dev 查看 SCA 規(guī)范。


    描述
    Module 是通過(guò)一個(gè) XML 格式文件進(jìn)行描述的,下面是該 XML 文件的一個(gè)大體格式:


    <? xml?version="1.0"?encoding="ASCII" ?>

    < module? xmlns =”http://www.osoa.org/xmlns/sca/0.9”

    xmlns:v ="http://www.osoa.org/xmlns/sca/values/0.9"

    name
    ="xs:NCName" ? >

    < entryPoint? name ="xs:NCName" ?multiplicity ="0..1?or?1..1?or?0..n?or?1..n" ? > *

    < interface .interface-type />

    < binding .binding-type?uri ="xs:anyURI" /> +

    < reference > wire-target-URI </ reference >

    </ entryPoint >

    < component? name ="xs:NCName" > *

    < implementation .implementation-type />

    < properties > ?

    < v:property-name > property-value </ v:property-name > +

    </ properties >

    < references > ?

    < v:reference-name > wire-target-URI </ v:reference-name > +

    </ references >

    </ component >

    < externalService? name ="xs:NCName" > *

    < interface .interface-type /> +

    < binding .binding-type?uri ="xs:anyURI" /> *

    </ externalService >

    < wire > *

    < source .uri > wire-source-URI </ source.uri >

    < target .uri > wire-target-URI </ target.uri >

    </ wire >

    </ module >

    ?

    ComponentType Component


    對(duì)于一個(gè)
    Module 內(nèi)部來(lái)說(shuō), Component 是絕對(duì)的主力。


    要說(shuō)起
    Component ComponentType 就不得不說(shuō)。


    ComponentType
    是一個(gè)描述 SCA 中服務(wù)的元素,它定義了服務(wù)以及服務(wù)的接口,以及服務(wù)對(duì)應(yīng)的屬性和服務(wù)引用。 ComponentType 是通過(guò)一個(gè)后綴名為 .componentType XML 文檔來(lái)描述的,描述如下:


    < componentType? xmlns ="http://www.osoa.org/xmlns/sca/0.9" >

    < service? name ="MyValueService" >

    < interface .java?interface ="services.myvalue.MyValueService" />

    </ service >

    < reference? name ="customerService" >

    < interface .java?interface ="services.customer.CustomerService" />

    </ reference >

    < reference? name ="stockQuoteService" >

    < interface .java?interface ="services.stockquote.StockQuoteService" />

    </ reference >

    < property? name ="currency" ?type ="xsd:string" ?default ="USD" />

    </ componentType >

    ?

    服務(wù)的接口目前分為兩種: Java interface WSDL ,這很好理解, Java interface 就不說(shuō)了, WSDL 想必大家也都知道,通過(guò)它的描述我們可以得到一個(gè)很準(zhǔn)確的接口。服務(wù)接口是一個(gè)可以擴(kuò)展的屬性,我們可以定義出其他不同的接口類型,當(dāng)然,前提是所使用的 SCA 必須能識(shí)別并支持才行。


    服務(wù)的屬性和服務(wù)引用和
    Spring 的屬性以及引用類似。 ComponentType 描述的這些屬性和引用,在 SCA Runtime 中實(shí)例化服務(wù)時(shí),是需要注入的。屬性一般對(duì)應(yīng)的是一些簡(jiǎn)單類型,復(fù)雜類型只能是 SDO JAXB ;而引用則是需要對(duì)應(yīng)的也是一個(gè)服務(wù),在實(shí)例服務(wù)的時(shí)候,服務(wù)所引用的其他服務(wù)也需要一起實(shí)例化并注入。(注入的前提是該屬性或者引用的 requied 屬性為 true ,否則 SCA 就不會(huì)注入)。


    ComponentType
    只是描述性地說(shuō)明一下服務(wù)的的接口以及屬性,引用,但是具體該服務(wù)對(duì)應(yīng)的實(shí)現(xiàn)以及屬性的值和引用對(duì)應(yīng)的服務(wù)是沒(méi)有給出的。


    Component
    就是完成上述 ComponentType 沒(méi)有完成的工作。


    我們可以把
    ComponentType 想象成一個(gè) Class ,而 Component 是這個(gè) Class 的一個(gè) Instance

    Component 描述了服務(wù)對(duì)應(yīng)的實(shí)現(xiàn),服務(wù)實(shí)現(xiàn)是通過(guò) implement 元素指定的。這里要注意, SCA 中,實(shí)現(xiàn)是一個(gè)比較廣的概念,不僅僅是一個(gè)簡(jiǎn)單的 Java 類實(shí)現(xiàn), Component 所對(duì)應(yīng)的實(shí)現(xiàn)和 ComponentType 中所定義的接口一樣,是有不同類型的。目前來(lái)看, SCA 規(guī)范中給 implement 元素定義了只給出了一個(gè) Java 實(shí)現(xiàn): JavaImplement ,在 SCA 的一些其他擴(kuò)展信息中,提出了 BEPL 實(shí)現(xiàn)以及 EJB 實(shí)現(xiàn)等。


    同樣,
    Component 也描述了 ComponentType 中定義的屬性以及引用所對(duì)應(yīng)的值。 Component XML 描述是在 Module 的描述文件中的,下面給出一個(gè)片段:


    < component? name ="xs:NCName" > *

    < implementation .implementation-type />

    < properties > ?

    < v:property-name? override ="no?or?may?or?must" ?

    modulePropertyName
    ="xs:NCName" ? >

    property-value

    </ v:property-name > +

    </ properties >

    < references > ?

    < v:reference-name > wire-target-URI </ v:reference-name > +

    </ references >

    </ component >

    ?

    對(duì)于我們剛才提到的服務(wù)引用,這里我想羅嗦幾句。


    服務(wù)引用并不是一個(gè)調(diào)用順序或者調(diào)用關(guān)系的描述,它只是指出了服務(wù)之間的引用關(guān)系,并且能夠動(dòng)態(tài)注入而已。很多人認(rèn)為,
    SOA 中服務(wù)和服務(wù)之間是可以通過(guò)業(yè)務(wù)規(guī)則連接起來(lái),然后可以逐個(gè)調(diào)用,像一個(gè) Flow 一樣,其實(shí)不然, SOA 更重要的是關(guān)注服務(wù),比如 SCA 就很重視對(duì)服務(wù)的管理,以及將服務(wù)接口和實(shí)現(xiàn)解偶,服務(wù)和服務(wù)之間的連接也只是引用而已,并不是調(diào)用順序。用過(guò) Seebeyond (比較早的一個(gè)面向服務(wù)的框架,已經(jīng)被 SUN 收購(gòu))的人都知道,真正去啟動(dòng)服務(wù)編排調(diào)用的還是 BEPL 。同樣 SCA 中之所以提出了 Component BEPL 實(shí)現(xiàn),也是出于對(duì)服務(wù)編排調(diào)用的考慮。

    ?

    EntryPoint


    Module
    SCA 中是一個(gè)粒度較為粗的單元, Module Module 之間的交互是通過(guò)定義在 Module 內(nèi)部的 Entry Point External Service 進(jìn)行的,也就是說(shuō) Entry Point 是一個(gè) Module 對(duì)外提供的接口,而 External Service 是一個(gè) Module 對(duì)外訪問(wèn)的出口。


    module2module.JPG

    ?

    ?

    Entry Point 自身是只能定義自己的訪問(wèn)接口,但是真正的具體實(shí)現(xiàn)(比如一個(gè) Java Class ),是通過(guò)它自身的 Reference 指定的。 Reference 指向的是一個(gè) Component ,這就意味著,該 Entry Point 的調(diào)用是直接利用 Component 的實(shí)現(xiàn)來(lái)完成的。下面是 EntryPoint 的描述片段:


    < entryPoint? name ="MyValueService" >

    < interface .java?interface ="services.myvalue.MyValueService" />

    < binding .ws?port ="http://www.myvalue.org/MyValueService#

    wsdl.endpoint(MyValueService/MyValueServiceSOAP)"
    />

    < reference > MyValueServiceComponent </ reference >

    </ entryPoint >

    ?

    而一個(gè) Entry Point 既然是對(duì)外的接口,那么它就不能像我們?cè)L問(wèn)一個(gè)普通 Java 類那么去訪問(wèn)了,所以在對(duì)外發(fā)布 Entry Point 是需要通過(guò)其他的一些輔助技術(shù)來(lái)完成,比如 Web Service JMS 等,問(wèn)題在于如何確定該 Entry Point 所對(duì)應(yīng)的這些輔助技術(shù)(應(yīng)該說(shuō)是某種協(xié)議)呢? SCA 規(guī)定,一個(gè) Entry Point 需要指出它的 Binding ,利用 Binding 來(lái)確定該 Entry Point 具體是需要通過(guò)什么協(xié)議來(lái)進(jìn)行發(fā)布的。

    ?

    Binding


    Binding
    是一個(gè)可以擴(kuò)展的元素,目前 SCA 0.9 中給出了兩種 Binding: SCA, Web Service ,不過(guò)我們是可以對(duì) Binding 進(jìn)行擴(kuò)展的,前提是所使用的 SCA 容器必須支持?jǐn)U展的 Binding


    一旦
    Entry Point 指明了自己的 Binding 后, SCA 容器就應(yīng)該根據(jù)它所指定的 Binding 類型對(duì)它進(jìn)行對(duì)外發(fā)布。比如 Entry Point A 指定了一個(gè) Web Service Binding ,那 SCA 就必須能將這個(gè)服務(wù)通過(guò) Web Service 的實(shí)行發(fā)布出去(不要聯(lián)想到 UDDI ,這里的發(fā)布只是說(shuō)將這個(gè) Entry Point 制作成一個(gè) Web Service ,能讓外界通過(guò) Web Service 的訪問(wèn)方式訪問(wèn)到該 Entry Point )。具體 SCA 如何實(shí)現(xiàn)我們不得而知。

    ?

    廣告


    本人的一個(gè)簡(jiǎn)單的
    SCA Container 實(shí)現(xiàn),可以在uxbalto.googlepages.com得到 相關(guān)信息,不過(guò)頁(yè)面沒(méi)怎么加,東西少得可憐。
    ?

    External Service


    既然理解了
    Binding ,那理解 External Service 就容易許多了。先看看描述片段:


    < externalService? name ="CustomerService" >

    < interface .java?interface ="services.customer.CustomerService" />

    < binding .sca />

    </ externalService >

    < externalService? name ="StockQuoteService" >

    < interface .java?interface ="services.stockquote.StockQuoteService" />

    < binding .ws?port ="http://www.stockquote.org/StockQuoteService#

    wsdl.endpoint(StockQuoteService/StockQuoteServiceSOAP)"
    />

    </ externalService >

    ?

    External Service Entry Point 類似,只是一個(gè)是對(duì)外發(fā)布,一個(gè)是要去遠(yuǎn)程訪問(wèn)而已。我們一旦指明了 External Service Binding 后,在訪問(wèn)該 External Service 提供的服務(wù)時(shí),我們就會(huì)通過(guò)指定 Binding 類型對(duì)遠(yuǎn)程發(fā)布的服務(wù)進(jìn)行訪問(wèn)。


    其實(shí)不難看出,由于
    SCA Module Module 之間的交互需要通過(guò)這么一種遠(yuǎn)程發(fā)布和訪問(wèn)的方式,可以認(rèn)為 Entry Point External Service 之間是被調(diào)用和調(diào)用的關(guān)系, Entry Point 發(fā)布出去的服務(wù),一般都是由 External Service 訪問(wèn)的。當(dāng)然, External Service 不一定非要去訪問(wèn) SCA 容器中的東西,單獨(dú)的非 SCA 管理的 Web Service 或者其他什么也可以利用 External Service 去訪問(wèn)的。

    ?

    結(jié)束語(yǔ)


    SCA
    規(guī)范中還有很多沒(méi)有在文中提起,比如異步調(diào)用,服務(wù)的 Scope,SubSystem 等,我會(huì)在以后的文章中再和大家一起討論。


    評(píng)論

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2006-10-06 11:55 by BlueDavy
    SCA繼承了OSGi的規(guī)范的模塊化的設(shè)計(jì)方法,同時(shí)為企業(yè)應(yīng)用而增加了屏蔽諸如遠(yuǎn)程調(diào)用這些的具體的技術(shù)難度的東西,再加上它繼承了SOA的跨語(yǔ)言的特性,使得在企業(yè)應(yīng)用領(lǐng)域它的優(yōu)勢(shì)還是很明顯的。
    SCA的規(guī)范的模塊化至少對(duì)Java界是會(huì)有影響的,也許JCP會(huì)加快完善Java Module System的相關(guān)規(guī)范并付諸實(shí)現(xiàn)。

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2006-10-06 16:13 by pear
    真的不知這些東西是用來(lái)解決什么問(wèn)題的。

    摟主: 能不能給我推薦一個(gè)主要用Web Service實(shí)現(xiàn)的實(shí)際系統(tǒng)?

    現(xiàn)在感覺(jué)技術(shù)學(xué)了,卻不知用來(lái)干什么,有點(diǎn)迷盲。。呵呵

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2006-10-06 17:31 by BlueDavy
    最重要是用來(lái)實(shí)現(xiàn)標(biāo)準(zhǔn)化,子系統(tǒng)由模塊組成,模塊由組件構(gòu)成,組件對(duì)外暴露或引用服務(wù),這些本來(lái)就是系統(tǒng)設(shè)計(jì)的基本準(zhǔn)則,只是SCA希望將這樣的設(shè)計(jì)方法標(biāo)準(zhǔn)化,同時(shí)屏蔽一些技術(shù)難度細(xì)節(jié)的東西,使得開發(fā)人員能夠更加專注于業(yè)務(wù)的實(shí)現(xiàn).....just so so..

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2006-10-07 11:54 by Dart
    TO pear:

    關(guān)于“主要用Web Service實(shí)現(xiàn)的實(shí)際系統(tǒng)”我不太明白是什么意思,我猜你是想知道WS主要應(yīng)用吧?如果是那樣我認(rèn)為你可以好好看看Developworks上的文章,對(duì)你有幫助

    另外,我的這篇文章還是寫得太虛,沒(méi)有給大家比較直觀的認(rèn)識(shí)。等我完成了我的SCA容器(Balto)后一定會(huì)將官方的BigBank完成,展示一下SCA的戰(zhàn)斗力。

    技術(shù)不是游戲,技術(shù)不是拿來(lái)玩的,技術(shù)的存在一定是要解決當(dāng)前的存在的生產(chǎn)生活問(wèn)題的。千萬(wàn)不要認(rèn)為技術(shù)學(xué)了沒(méi)用,學(xué)了就一定有用;但是也不要盲目追捧技術(shù)

    TO BlueDavy:

    SCA目前還不完善,很難說(shuō)以后會(huì)是什么樣,而且它存在的目的其實(shí)很明確:在現(xiàn)在天天呼喚SOA的這樣一個(gè)歷史時(shí)期中,幾個(gè)大廠商推標(biāo)準(zhǔn),然后其他公司追趕,最后設(shè)計(jì)成,為以這幾家大公司現(xiàn)有產(chǎn)品整合為主的框架也說(shuō)不定。

    SCA是否真能到達(dá)“設(shè)計(jì)開發(fā)SOA化”這就很難說(shuō)了,這需要設(shè)計(jì)開發(fā)人員自身對(duì)SOA的理解,不過(guò)讓SCA達(dá)到"設(shè)計(jì)標(biāo)準(zhǔn)化"還是容易的。

    我對(duì)OSGi不熟悉,不過(guò)由于長(zhǎng)期從事Eclipse Plugins開發(fā),多少知道一些。我覺(jué)得OSGi中那中“既插既拔”的module管理思路和SCA中的以Module為主要單元的設(shè)計(jì)還不太一樣,OSGi更偏重于對(duì)接入模塊的動(dòng)態(tài)管理,并不整合它們;SCA則是更加偏重對(duì)Module(Composite)之間的交互。

    有不對(duì)的地方還請(qǐng)多多指教

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2006-10-08 09:59 by BlueDavy
    @Dart
    為什么我會(huì)說(shuō)SCA是OSGi在企業(yè)應(yīng)用的一種延伸,原因就在于SCA和OSGi都有一個(gè)非常核心的東西,就是將模塊設(shè)計(jì)、開發(fā)、部署標(biāo)準(zhǔn)化,在這方面SCA和OSGi其實(shí)基本是一致的,所以在Module之間的交互上,兩者的原理也是相同的,都是一種服務(wù)交互的機(jī)制,只是表現(xiàn)上SCA有所不同,因?yàn)镾CA的制定目標(biāo)是企業(yè)應(yīng)用,所以它考慮到了遠(yuǎn)程模塊交互上的問(wèn)題,這個(gè)強(qiáng)于OSGi,所以我覺(jué)得SCA很像是OSGi在企業(yè)應(yīng)用界的延伸。
    非常有興趣和你多交流,我的MSN:
    BlueDavy@hotmail.com

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2007-09-02 20:56 by jackyrong
    由于本人公司里存在不少遺留系統(tǒng),有用java,php,asp,asp.net的四類系統(tǒng),而且還有不少和合作伙伴的接口程序(之前都是用HTTP來(lái)交換數(shù)據(jù)的),現(xiàn)在而且本人的碩士畢業(yè)
    論文設(shè)計(jì)也是做SOA方面的,但目前遇到了一個(gè)難題,那就是到底SOA應(yīng)該如何從開始進(jìn)行架構(gòu)設(shè)計(jì),如何提煉業(yè)務(wù),并且如何將SOA的思想應(yīng)用到公司的實(shí)際系統(tǒng)中,我目前只整理了一下,感覺(jué)可以用到SCA/SDO/BPEL/ESB這些東西,ESB打算用MULE的開源,
    SCA/SDO打算用APACHE的TUSCANY,但不知道有什么好的架構(gòu)設(shè)計(jì)的方法呢?

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2007-09-03 15:14 by Dart
    to jackyrong:

    從什么角度入手去開發(fā)一個(gè)SOA構(gòu)架的應(yīng)用的確是個(gè)難題。
    我記得IBM的一次SOA會(huì)議上提到過(guò),其實(shí)做SOA的可以從多個(gè)方面入手,一共有好幾個(gè)方面,我只記得以下2點(diǎn):
    1.從數(shù)據(jù)入手

    基本上就是有點(diǎn)像數(shù)據(jù)整合的感覺(jué)——將異構(gòu)應(yīng)用的數(shù)據(jù)進(jìn)行整合同步。目前國(guó)
    內(nèi)有不少公司做這樣的產(chǎn)品,比如東方通的TI在數(shù)據(jù)同步方面就很強(qiáng)。

    2.從連接入手
    將一些應(yīng)用的接口進(jìn)行抽取,然后利用SCA的標(biāo)準(zhǔn)進(jìn)行封裝(或者直接利用WebServices進(jìn)行封裝),對(duì)外發(fā)布后提供給其他應(yīng)用調(diào)用。

    還有就是你所提到使用ESB,這點(diǎn)上我覺(jué)得其實(shí)如果你使用SCA來(lái)做的話,ESB是不是可以取消掉呢?

    上面是我一些不成熟的看法,希望對(duì)你有所幫助

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2007-10-30 16:40 by yihong
    我有這么幾個(gè)問(wèn)題想問(wèn)下您:
    (1)Component是不是不能提供服務(wù),是不是必須通過(guò)Composite向外提供服務(wù)?Composite是SCA里面提供服務(wù)的最小單元么,它的上一級(jí)是否是Domain,那domain是不是也是一個(gè)服務(wù),只是服務(wù)粒度比較大而已?
    (2)Composite可以被發(fā)布為WEB service,那么在SCA里面WEB service處于一個(gè)什么樣的地位,它屬于“非SCA組件”么,在SCA規(guī)范里面WEB service能被直接綁定,直接調(diào)用么?
    (3)在SOA架構(gòu)里面,ESB是一個(gè)非常重要的概念。SCA作為SOA的一個(gè)規(guī)范,ESB是怎么實(shí)現(xiàn)的。我現(xiàn)在所了解的是IBM的WID中可以通過(guò)構(gòu)建Mediation module(在SCA 0.9里面好像module對(duì)應(yīng)現(xiàn)在的Composite)來(lái)提供ESB服務(wù)。
    (4)在SCA里面好像組件能打包,是不是只有Domian才能打包呢?打包有什么作用,Contribution到底是一個(gè)什么樣的東西?
    (5)SOA的概念層次從下到上一般分為:操作系統(tǒng)層、組件層、服務(wù)層、業(yè)務(wù)流程層、和表示層(IBM好像就是這么分的)。具體到SCA,它分別對(duì)應(yīng)于SCA的什么呢?看過(guò)LZ寫的文章,依我理解是不是“組件層”對(duì)應(yīng)Component,“服務(wù)層”對(duì)應(yīng)Composite,“業(yè)務(wù)流程”對(duì)應(yīng)Domain呢?
    (6)LZ的文章把Composite分為三層,是不是TOP-Composite對(duì)應(yīng)業(yè)務(wù)流程?TOP-Composite與Domain就服務(wù)粒度上有什么不同呢?
    (7)這個(gè)問(wèn)題還是關(guān)于WEB service的,現(xiàn)在很多文章,還有基本所有的工具包括IBM,在實(shí)現(xiàn)SOA的時(shí)候基本都是用WEB service。雖然IBM聲稱它的產(chǎn)品支持SCA1.0,但是在實(shí)現(xiàn)的時(shí)候都需要把服務(wù)發(fā)布為WEB service。既然SOA可以用WEB service來(lái)實(shí)現(xiàn),而SCA又是SOA的一個(gè)實(shí)現(xiàn)規(guī)范,那么SCA和WEB service的關(guān)系是什么樣的?
    (8)我經(jīng)常看到好多文章題目是“基于SOA的、、、、實(shí)現(xiàn)”,還有的是“基于SCA的、、、實(shí)現(xiàn)”。后面的提法是不是有問(wèn)題,比如“基于SCA的物流信息共享平臺(tái)的實(shí)現(xiàn)”。因?yàn)閺母拍钌现v,SCA只是一個(gè)實(shí)現(xiàn)而已.


    還有,LZ既然從SCA0.9規(guī)范就開始研究,為什么SCA1.0出來(lái)后,為什么就不寫了呢。LZ的文章道理還是講得很透徹的。

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2007-10-30 16:45 by yihong
    不好意思,第5和第6是從其他的一篇文章看過(guò)來(lái)的,發(fā)的時(shí)候不小心就發(fā)上去了。感覺(jué)您的BLOG今年就沒(méi)更新了,呵呵
    如有可能,能否還說(shuō)說(shuō)Spring在SCA中的實(shí)現(xiàn)

    # re: 淺談SCA  回復(fù)  更多評(píng)論   

    2007-10-31 13:28 by Dart
    To yihong:

    我很久沒(méi)有更新blog了,我的SCA Container也已經(jīng)1年沒(méi)有更新代碼了。我也放松了對(duì)技術(shù)方面的學(xué)習(xí),這可能就是我這個(gè)人最大的弱點(diǎn)吧。不過(guò)謝謝你的提醒,我想我會(huì)重新拾起這些久違的東西。


    我胡亂回答一下你的問(wèn)題:
    1:所謂服務(wù)就是提供一定功能的實(shí)體,提供服務(wù)的實(shí)體我們可以稱之為服務(wù)提供者,是這樣吧?SCA中,將模型劃分成幾個(gè)不同粒度,其實(shí)我覺(jué)得都可以看成服務(wù)提供者,但是他們的粒度不一樣。我覺(jué)得Component可能是最小的服務(wù)粒度。在0.9中,對(duì)外提供服務(wù)的話需要使用Composite。你所說(shuō)的domain應(yīng)該是從0.96后的版本加入的吧,我覺(jué)得它也是服務(wù)提供者。SCA把這些同為服務(wù)提供者的模型分正這幾類粒度,可能是從SOA設(shè)計(jì)角色考慮出發(fā)的——設(shè)計(jì)人員和開發(fā)人員考慮的角度是不一樣的。
    2:WebService在sca中被稱為一個(gè)binding,它利用協(xié)議綁定的形式進(jìn)行描述,而進(jìn)行訪問(wèn)的時(shí)候,我們根本就不需要知道它是不是web服務(wù),因?yàn)槲覀兌际峭ㄟ^(guò)domain去查找出服務(wù)代理,然后調(diào)用方法的。那在調(diào)用過(guò)程中,具體如何調(diào)用(WebService?JMS?),服務(wù)消費(fèi)者(調(diào)用服務(wù)的人)是不知道的。
    3:你提到了IBM的Mediation module。我也看過(guò)那篇文章,不是很懂。我覺(jué)得SCA本身就具備ESB的一些功能,它們兩者之間有很懂相似的地方。有時(shí)候我會(huì)把SCA看成一個(gè)ESB的實(shí)現(xiàn)。如果要加入已有的ESB的話,我想可以通過(guò)擴(kuò)展SCA的Binding來(lái)做到這一點(diǎn)吧。
    4:對(duì)于組件打包這個(gè)問(wèn)題我一點(diǎn)都不知道了,不能回答你了。
    5:我覺(jué)得SCA應(yīng)該是囊括了組件層、服務(wù)層、業(yè)務(wù)流程層。組件層可以看成已經(jīng)發(fā)布的Domain或者一些其他的可以利用SCA訪問(wèn)的可用功能組件;服務(wù)層就不說(shuō)了(服務(wù)無(wú)處不在);業(yè)務(wù)流程層應(yīng)該說(shuō)是BPEL吧,那應(yīng)該在SCA對(duì)應(yīng)的是BPEL implement 才對(duì),所以說(shuō)這些所謂“層”對(duì)應(yīng)到SCA模型是不能直接連線的。其實(shí)可以這么看,服務(wù)層和組建層做為原子業(yè)務(wù)功能的提供層,業(yè)務(wù)流程層則是組合這些原子功能的地方。
    7:SCA是一種設(shè)計(jì),開發(fā)的模型指導(dǎo)方案,WebService可以看成組成SCA的一個(gè)技術(shù)部分。
    8:這個(gè)我倒無(wú)所謂,只是需要明確:SOA是方法論,SCA是一種技術(shù)規(guī)范。
    主站蜘蛛池模板: 99久久久精品免费观看国产 | 全免费a级毛片免费看无码| 久久精品免费一区二区| 日韩在线视频播放免费视频完整版| 国产黄色免费观看| 1000部拍拍拍18勿入免费视频软件| 亚洲AV永久无码精品一百度影院| 亚洲一区精彩视频| 免费看黄的成人APP| 日本成人免费在线| 亚洲天堂一区二区| 三年片在线观看免费观看大全中国| 免费无码又爽又刺激高潮的视频| 亚洲变态另类一区二区三区| 香蕉免费一区二区三区| 免费无码黄动漫在线观看| 亚洲欧美成人一区二区三区| 四虎影视成人永久免费观看视频| 亚洲视频在线观看| 亚洲黄色免费网站| 亚洲AV无码一区东京热久久| 久久亚洲免费视频| 亚洲午夜久久久久久噜噜噜| 国产精品亚洲精品久久精品 | 亚洲av无码专区在线| 男人天堂免费视频| 亚洲欧洲日本在线| 国产精品亚洲AV三区| 成人伊人亚洲人综合网站222| 亚洲丝袜中文字幕| 国产精品美女自在线观看免费| 亚洲国产综合第一精品小说| 国产午夜无码精品免费看| 亚洲中文字幕日产乱码高清app| 美女无遮挡免费视频网站| 精品剧情v国产在免费线观看| 免费国产va视频永久在线观看| 国产免费一区二区三区VR| 色偷偷亚洲男人天堂| 中文字幕人成人乱码亚洲电影| 免费无遮挡无码永久视频|